package com.cskaoyan.javase.oop2._2polymorphic._2advantage._1parameter;

/**
 * 思考：
 *  方法的实参数据类型，需要和方法的形参数据类型保持一致吗？
 *  不需要，存在数据类型的自动类型转换
 *  在学习基本数据类型参数时：
 *     如果方法的实参数据类型,可以自动类型转换到形参数据类型
 *     那么该实参变量就允许传入方法
 *
 *  将上述原则扩展到引用数据类型参数，也是可以的：
 *      如果方法的实参传入的对象，可以向上转型到形参数据类型
 *      那么该实参对象就允许传入方法
 *  如果方法的形参数据类型是一个父类类型，那么也允许传入它的子类对象
 *  方法的传参可以向上转型，方法的返回值类型也是可以的
 *
 * @since 14:37
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        byte a = 10;
        test(a);

        test(new Father());
        test(new Son());

        test("123");
    }

    public static void test(int a) {
    }

    public static void test(Father f){}

    public static Father test(){
        // return new Father();
        return new Son();
    }

    public static void test(Object s){}
}
class Father{}
class Son extends Father{}